package com.nanyang.tms.manager.bill;

import com.nanyang.common.core.page.PageBean;
import com.nanyang.tms.domain.bill.*;

import java.util.List;

public interface BillManager {
    /**
     * 列表
     * @param query
     * @return
     */
    PageBean<BillVO> listBill(BillQuery query);

    /**
     * 记录列表
     * @param query
     * @return
     */
    PageBean<BillRecordVO> listBillRecord(BillRecordQuery query);

    /**
     * 保存
     * @param billDO
     */
    void addBill(BillDO billDO);

    /**
     * 对账
     * @param billDO
     */
    void checkBill(BillDO billDO);

    /**
     * 异步对账
     * @param billCode
     */
    void syncCheckBill(String billCode);

    /**
     * 差异处理
     * @param billDO
     */
    void solveBill(BillDO billDO);

    /**
     * 异步更新差异处理结果
     * @param listBill
     * @param billCode
     */
    void syncUpdateBill(List<BillRecordDO> listBill, String billCode);
}
